﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;

#endregion

namespace Sebastof.Core.Services.Interfaces {
	/// <summary>
	/// Is responsible to prepare an object for transmission or backward
	/// </summary>
	public interface IObjectTransmissionService {
		#region Public Methods

		/// <summary>
		/// prepars an object for transmission
		/// </summary>
		/// <param name="obj"></param>
		/// <returns></returns>
		object PrepareObjectForTransmission(object obj);

		/// <summary>
		/// undecorates the given transmitted object
		/// </summary>
		/// <param name="requestedType"></param>
		/// <param name="toUndecorage"></param>
		/// <returns></returns>
		object PrepareTransmittedObjectForUsing(Type requestedType, object toUndecorage);

		#endregion
	}
}